Я бы на твоём месте даже без гайдов попробовал бы везде пощёлкать и поискать надпись "Stand", а если бы нашел, то попробовал бы как-нибудь переименовать
IGOREIK, там четыре события на применение способности.
Пробуй разные, выбери, какое подойдёт лучше.
Вариант 8gabriel8 лучше. Немного дополню. Можно найти модель спецэффекта, который применяется во время включения способности. Посмотреть редакторами моделей (War3ME, например), какой там звук используется. И прописать импортированному звуку этот путь.
Короче понял как сделать (ну и в принципе ничего сложного. методом тыка узнал как это сделать. до этого уже 2 часа добил):
расписываю
у меня есть почва
обрабатываю. Но вообще-то не нужно вырезать, просто выделите и все. Но я уж поздно, обработал. По примеру уберсплатов для зданий в варике не вырезаны края. Просто альфа канал стоит
Ну и .. (понял бы любой)
сохраняете в формате tga, потом конвентируете (можно прогой Warcraft 3 Viewer). и смотрим, что получилось
получилось не очень, нужно наверное другую картинку подобрать.
импортировать в карту по путям стандартных моделей...
Abilities\Spells\Human\MassTeleport\MassTeleportCaster.mdx
Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdx
Abilities\Spells\Human\MassTeleport\MassTeleportTo.mdx
Нашел проблему. Массив имеет ограничение (8192 раз.) А ID юнитов у меня там могут достигать 8-значных чисел.
Поэтому, когда я попытался сохранить мультиборд в переменной с заоблачным массивом, то у меня просто ничего не сработало. Как теперь выбрать свой комментарий, как лучший ответ?=DD
мультиборд в карте на ГУИ? в гуи функциях внутри часто необнуляются локальные переменные объектов
если код то мб не используется MultiboardReleaseItem и итемы остаются висеть
На гуи можно сделать все и если ты будешь обновлять несколько окон мультиборда раз в секунду - ничего страшного не случится. Учетки страшны если ты их создаешь по 100 шт раз в 0.04 всю игру
и удали русские тригеры это отрава для глаз и редактора. Нужное тебе действие как раз таки "конвертировать целочисленную в строку" почему здесь ТАКОЙ ПЕРЕВОД - инфа засекречена
можно в одном мультиборде разным игрокам показывать разные тексты с помощью GetLocalPlayer
Ты не сможешь показать три разных мультиборда. Только один на экране будет отображен. Пример у тебя 1-ый и 2-ой мультиборды. У игрока локально отображен какой то один. Пусть будет 1-ый. Есть спец нативки показа мультиборда. Когда ты показываешь этому игроку 2-ой мульт, 1-ый прячется. Хочешь снова 1-ый показать, показываем его.
Тебе надо как то запоминать тек номер. Пример хочешь показать диалог, прячем мульт.
Можно поизучать фреймы, и создать что то похожее. Если вы знаете как делать. Есть фреймы и тут.
Есть функции, которые показывают свернут или отображен мульт:
native IsMultiboardDisplayed takes multiboard lb returns boolean
native IsMultiboardMinimized takes multiboard lb returns boolean
и нативка которая скрывает или наоборот показывает:
native MultiboardDisplay takes multiboard lb, boolean show returns nothing
примергде-то надо еще таймером будет. просто по идее система работает так: происходит событие изменения ресурса (запоминаем сколько), следом происходит основное событие (покупка-продажа). значит, здесь ловим итем, потом вычисления с налогами. Но такой порядок бывает не всегда. Вот допустим продажа: сначала продаем (итем забирают, событие продажи), потом дают деньги (событие изменения ресурса). как видишь, здесь надо тогда таймером через 0.00 сек или сколько то сек проверять измену реса
хотел реализовать похожую систему (проводить торговлю не через чат, а через кнопочки). только на мем хаке. изменить можно только в мем хаке. если вы изменяете цену типу предмета, тогда она у всех итемов данного типа меняется. сделал так: копию на каждого игрока, у одного будет одна цена, у другого другая. короче каждый игрок товар может предложить по разной цене. как это будет работать пока не знаю (я не все продумал, и поэтому не доделал).
можно стоимость убрать и триггерами начислять/убавлять
А что мешает отслеживать изменение содержимого инвентаря? Т.е. получение предмета, который подходит для манипуляций, после чего поочерёдно проверять только те списки, в которых этот предмет участвует... ну и делать что надо
Так ведь я так и делаю. Юнит получает предмет, содержимое его инвентаря записывается в таблицу. И вот, я не могу придумать по какой схеме мне сравнить эту таблицу со списками рецептов. Вот есть TransfigurationData.List[ID] в нём списки TransfigurationData.List[ID][ID1,2,3,4,5....]
Нужно как-то сделать проверку есть ли в списке TransfigurationData.List[0][1](как пример) то что в инвентаре героя, если да то убрать их и выдать TransfigurationData.Result[Тот же ID что и у List] :)
О ес, оно заработало я сам всё решил. Спасибо за внимание :)
Ну либо для мультикастера заводим одельного дамми с маной, с атрибутами, но при каждом касте скидываем ему кд и ману ставим на макс (если разумеется каст не зависит от кол-ва текущей маны, иначе на кол-во реального героя).
Ну так же можно сделать дамми аналоги способностей для мульткаста, или юзать мемхак с принудительным кастом абилки (но это подходит лишь для дефолтных абилок).
с помощью кода включить нужную анимацию у юнита, разумеется анимация должна быть у модели, у старых варовских моделей анимация разговора была лишь на портрете, это отдельная модель, кроме всяких крипов с мордами в 3 полигона.
Достать то можно - что толку, они имеют иной формат, с ними ниче сделать низя, публичного софта для редактирования и изучения нет, поэтому рефорджевские модели никому и ненужны - ты с ними ниче и не сделаешь.
Для аттачей необходимо использовать способность Tree of Life upgrade ability (Atol), видна только в JNGP, но при помощи некоторых манипуляций можно и в Reforged увидеть.
Альтернатив не так много, о них уже сказал Extremator.
Для этого берутся либо ауры (тогда в них ещё можно и специфический бафф накладывать на носителя), либо абилки от "когтей атаки" и "кольца защиты" (дающие +атаки и +защиту, в них точно так же как в ауре настраиваются точки крепления и модели)
Использовать способность Shpere (Asph) или аналоги у духов возмездия не рекомендуются.
Занят похожим проектом, тебе понадобятся два триггера
Первый - с периодичностью в 30 сек. записывает все юниты такого-то игрока в группу юнитов <Имя переменной, тип - группа юнитов> с двумя условиями - Юнит живой и Юнит не состоит в это группе
Второй - событие, юнит умирает. Условие - юнит состоит в группе юнитов <Имя переменной, тип - группа юнитов>. Действие - удалить юнита из группы юнитов <Имя переменной, тип - группа юнитов>
Хотя по идее можно ужать все это в один триггер, убрав условие из первого триггера Юнит - живой, и после записи в группу выбрасывать из нее всех мертвяков.
Хотя все равно наблюдаются затупы, при довольно большом количестве юнитов на карте.
А может ли быть дело не в триггерах, а к примеру в моделях? Кто нибудь когда нибудь сталкивался с фризами из-за используемых моделей?
Это звучит глупа... Фризы из-за модели...
Тем не менее, попробовал удалить весь импорт из карты (около 6 МБ, 157 файлов mdx). Лаги и фризы прекратились. Сейчас дихотомией пробую найти проблемную модель. Хотя может проблемная модель и не одна, или например может быть накапливаемый эффект, который так не найти.
Сильно уменьшил число лагов, избавившись от двух моделей. Эти модели ещё и сами по себе вели себя странно. В частности, фундамент из модели Домика произвольно прикреплялся к анимациям других моделей. А модель Академии иногда меняла свой видимый масштаб без причины.
всё тему можно закрывать, пару раз сделал то же самое и о чудо всё заработало, в общем спишем на кривизну конвертера :D
P. S. если усидчивости хватит то ожидайте это чудо в разделе модели)
Была проблема с загрузкой на сайт, уже починили, можешь смело заливать.
Какой предел размера карты для публикации на этом сайте?
100 мегабайт у всего ресурса, но если надо больше и есть что показать, то можно попросить модераторов залить на сайт и + ссылки на облака никто не запрещал.
Вот есть ограничение на игру по сети (8м)
Это где такое? ограничение было только на гарене, и ото оно обходилось через спец патч, сейчас всё хостуется через ирину или последний патч рефорджа
Хотелось бы узнать что сколько кушает. Т.е. какую часть памяти примерно занимают триггеры (300+ штук), какую ландшафт (почти 8 тысяч декораций), юниты на карте, юниты в редакторе, спелы, переменные? На что мне сделать упор в плане оптимизации размера карты? Из моментов, к которым сам пришел это
1 -удаление юнитов с карты и добавление их уже в игре через триггеры,
2 -редактирование стандартных спелов взамен созданию новых на их основе
Можно открыть карту любой mpq программой, разумеется и посмотреть какой файл что кушает, в твоей случае после импорта на 2 месте будут гуи триггеры. Но можно вообще не заморачиваться по поводу размеров в 2020, а на сайте просто был глюк
У героя был Спеллбук, в спеллбуке была пассивная способность аура "Боевой марш". В процессе игры герой умирал и воскрешался. Если после воскрешения сохраниться и загрузиться вновь, то вылетает с ошибкой.
Исправил следующим образом. Отследил сохранения и в этом триггере отключал все пассивки в Спелбуке (SetPlayerAbilityAvaible() на false). Через малое время после сохранения вновь их активирую.
Я бы на твоём месте даже без гайдов попробовал бы везде пощёлкать и поискать надпись "Stand", а если бы нашел, то попробовал бы как-нибудь переименовать
Для простоты, создай один общий отряд для всех и добавляй туда каждого, кто появится на карте, так же ранее после загрузки выдели их и добавь. Хз, умеешь ли делать это всё без утечек, инфу можно на сайте найти. И после смерти юнта удаляем его из отряда.
Для отлова заклинания есть логическое/булевое сравнения, если данный баф/заклинание на юните.
Возможно у тебя реально проблема в последней, например он сканирует список всех карт, находит какое-то непотребство и падает в ошибку, надо проследить и почистить этот путь
Я не понимаю как работать без него, особенно без ро
В идее выбираешь режим редактор, а не игры, и работаешь в редакторе как обычно
боже
ловить атакованных юнитов это нафиг не нужная жесть
лови юнитов которые входят на карту и добавляй им событие
юнит может войти на карту только однажды(если не извращаться специально) так что лишних срабатываний не будет
и на 1 триггер меньше так как группа не нужна и отлов смерти тоже
в общем смотри статьи и наработки
Поставь шрифты, они у тебя улетели с версии 1.28.5 (?)
Распаковываешь в корень вара на диске д (или где он там у тебя лежит), если не заработает то смотришь реестр, где прописан варик.
Рановато нажал отправить
тогда можно заменить исследование на создание юнита
здание создает определенного юнита -> повышаем уровень инвентаря
у этого способа есть несколько минусов:
одна иконка на всех уровнях улучшения
юнит не исчезнет на последнем уровне улучшения, а значит придется заменять здание на другое, но уже без этого юнита
molot39, очень очень очень криво и костыльно gabriel_fisher, заводишь логическую переменную (назовём её isItem)
устанавливаем переменную isItem в false(ложь/нет)
циклом перебираешь слоты с 1 по 6
если предмет в слоте "переменная цикла" имеет 2 уровень и не равен подобранному предмету то устанавливаем isItem в true(истина/да)
после цикла идёт условие
если isItem равно true(истина/да) то
выбрасываем подобранный предмет
для того чтобы было муи нужно юзать локалки и джасс
подробнее можно найти там
База данных. В базе будет записан каждый меч, точнее номер меча, при подборе запоминаем в custom value или в хэш-таблицу, или в переменную или еще как-нибудь. Если номер больше нуля, значит у героя есть меч.
Самое простое - при подборе меча, проверяем есть ли в инвентаре такой меч. В РО итема можно задать уровнями. Например, первый уровень - мечи и топоры, второй уровень - защита груди, ну и так далее. Циклом пробегаешь, и поверяешь предметы на уровень.
Можно логическую переменную использовать для запоминания (одна логическая переменная - мечи и топоры, вторая логическая - луки и арбалеты итд). При подборе одного меча, проверяешь логическую, если есть, то дропаешь нафиг.
В таких системах используют обычно сферу молнию, а можно ли проверять есть ли такая способность у героя? Если уровень способности > 0, значит держит меч
ищи в поиске, такое миллион раз задавали. ношение больше одного, больше одного и так далее.
Astra, нет так не должно быть, если это тычка с руки, мб атакующего нетв разрешенных целях?
Кстати камеенные доспехи, шипы неруба, срабатывают только на удар юнита, не срабатывают на триггерный урон или на урон от сплеш атаки, рассекающей атаки, т.е всего урона который исходит не от самого удара юнита руками.
вкладка в редакьоре ландшафта
Дополнительно - Игровой интерфейс
там меняются все эти тексты, только надо поискать и галочку поставить "использовать нестандартные"
вообще там настраивается куча всего, включая текстуры интерфейса
нужный текст начинается с "Текст - Общий"
На 126 патче на мемхаке вот можно покупать модификаторы типа атаки, алгоритм для оружия будет тот же самый
На 131 патче функции смены типа атаки есть, но не работают (пока что =))
Морф не костыль, если делаете кампанию и там атаку может менять глав герой, тогда надо будет сделать Х (7) копий героя с новым типом атаки, а если у вас 100 героев и надо всем менять тогда раздувать до 700, это ужасно
Wurst позволит динамически заполнить базу таких героев, но это сложно
Берешь, заходишь в Менеджер импорта (F12 вроде), ищешь свою модель, это легко сделать. Тогда ПКМ -> Експортировать и следи, чтобы расширение файла било mdx.
Ты експортировал модель. Также ескпортируй все эти tga, как оказалось сама модель их требует и без них не даже в редакторе не откроется.
Теперь в новой карте в менджере импорта импортируешь модель и все tga. Прописываешь для всех tga и модели те же пути, иначе может не запустится.
Тогда пункт верхнего меню в основном окне редактора Дополнительно -> интерфейс, ищешь "Модель - кнопка приказа(перезарядка)" и меняешь на свою. Всё готово.
Для отображения интерфейса необходима только модель, не нужно для ее роботы новых текстур.
ВарКрафт ссылается на модели для отображения гемплея, а в свою очередь модели ссылаются на текстуры.
Хитрость в том что можна создавать 15 моделей с одинаковыми текстурами.
Насколько я помню анимация рубится с SetUnitX только если она установлена через SetUnitAnimation.
Если юзать SetUnitAnimationByIndex, все должно быть нормально.
Давай разберём моё решение (ответ номер 2), я его не раскрыл полностью потому что ждал наводящих вопросов, но ты его проигнорировал, потому что не понял ни слова?
Ответ номер 3, тебе рассказали тоже самое, но более расширенно и даже карту приложили
Ответ номер 8, про спеллбуки, снова тоже решение отлично, но ты его игнорируешь и спрашиваешь про постройку зданий альянса
Не понятно что такое спеллбук? (это дефолтный скил предмета "книга заклинаний"), мы же тебя не тролим, а отвечаем конкретными решениями, но если у тебя настолько глобальное непонимание, что ты даже не знаешь как задать следующий вопрос, мб тебе не стоит заниматься варкрафт моддингом?
И ТУТ не надо быть программистом, просто тыкаешь кнопочки и задаешь след вопросы:
А что такое этот ваш спеллбук спеллбук?
а как мне добавить 4?
а как сделать чтобы не было слияния заклинаний
а как сделать, чтобы по активации заклинания происходило изучение исследования?
а продажу юнита?
а каст способности?
а постройку?
Мы не бежим тебе делать готовую карту/наработку ибо:
на это нужно время, даже продвинутым (от получаса до 3х в зависимости от концентрации)
карту можно сделать а ты пропадёшь даже лайк не поставив или даже не прочитав
получи ты готовое, то ты вообще ничего не поймёшь тогда и станешь паразитом, человеком который отнимает время других людей и эти люди делают ему карту по чуть чуть, есть люди, которые занимаются таким паразитизмом около 10 лет, не буду говорить имена, меня сразу все поняли о ком я
Ась, что кого? для 126 отслеживание выделения в группе только на мемхаке, чистый 126 лесом, на рефордже через GetChild, вот ссылка, надо скопипастить на русском на Xgm
Но если принебречь этим множественным выбором и представить что выбор единичный
Тогда на гуи всё есть и получиться
C - Юнит выбран
У - Юнит такой-то, способность такая то есть, владелец выбранного=владелец выбирающего
Д -
set s = "" s = string
if p = GetLocalPlayer() then
set s = "Тут\\Типа\\Адрес\\Модели.mdx"
endif
call СоздатьСпецэффект(s,x,y) x,y - координаты, либо вместо них точка, либо виджет
а если по поводу вопроса
Но не понимаю, как именно применить тут эту систему
Система уже расписана, суть в том что у локального игрока создастся эффект с моделью, а у остальных с пустышкой и они ничего не увидят
set s = "" s = string пустышка
if p = GetLocalPlayer() then -- если локальный игрок тогда
set s = "Тут\\Типа\\Адрес\\Модели.mdx" -- модель уже не пустышка
» WarCraft 3 / Анимации
» WarCraft 3 / Ошибка в скрипте (Lua)
» WarCraft 3 / Способность на кастомные криты
» WarCraft 3 / типы image
» WarCraft 3 / lua: ошибка
» WarCraft 3 / Переменные мультибордов
» WarCraft 3 / Помощь в реализации формулы
» WarCraft 3 / цикл в lua
» WarCraft 3 / Урон от атрибутов
» WarCraft 3 / Своя анимация
» WarCraft 3 / Фризы
» WarCraft 3 / MdlVis
» WarCraft 3 / Версия игры (карты)
» WarCraft 3 / Анимация
» WarCraft 3 / Найти умирающего юнита
» WarCraft 3 / Почему оно не работает?
» WarCraft 3 / Любопытный триггер
» WarCraft 3 / Как работать с картой в виде папки?
» WarCraft 3 / Апгрейд предметов
» WarCraft 3 / 1 оружие = 2 предмета
» WarCraft 3 / Сила Тьмы
» WarCraft 3 / Импорт интерфейса
» WarCraft 3 / Анимация, да-да
» WarCraft 3 / Постройка альянса
» WarCraft 3 / нужно модел из 1.26